package interview.huawei.tjt.training.str;

import java.util.Scanner;

/**
 * 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如，输入字符串"abcdefg"和数字2，该函数将返回左旋转两位得到的结果"cdefgab"。
 *
 * 示例 1：
 * 输入: s = "abcdefg", k = 2
 * 输出: "cdefgab"
 *
 * 示例 2：
 * 输入: s = "lrloseumgh", k = 6
 * 输出: "umghlrlose"
 *
 * 限制：
 * 1 <= k < s.length <= 10000
 */
// 双指针法
public class ReverseLeftWords {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String s = scanner.nextLine();
            int k = scanner.nextInt();
            StringBuffer stringBuffer = new StringBuffer(s);
            int p = 0;   //p指针为慢指针，指向前 s.length() - k 个位置
            if (k < s.length()) {
                for (int i = 0; i < s.length(); i ++) {
                    if (i < k) {
                        stringBuffer.setCharAt(s.length() - k + i, s.charAt(i));
                    } else {
                        stringBuffer.setCharAt(p, s.charAt(i));
                        p ++;
                    }
                }
                System.out.println(stringBuffer.toString());
            } else {
                System.out.println("Error");
            }

        }
    }

}
